// 筛选权限路由的模块

// 引入动态路由
import { asyncRoute } from '@/router/index'
// 引入路由中的静态网页（首页）
import { constantRoutes } from '@/router/index'
const state = {
  // 声明变量，保存筛选出来的权限路有数据
  routes: []

}
const mutations = {
  setRoutes(state, routes) {
    // state.routes = routes
    // 修改state中的路由数组，引入静态页面
    state.routes = [...constantRoutes, ...routes]
  }

}
const actions = {
  // 这里的menus是调用的时候传参过来
//   筛选动态路由
  // 在导航守卫处调用
  filterRoutes(store, menus) {
    // log拿到的menus
    console.log(22, menus)
    // 遍历数组asyncRoute动态路由总名单
    const routes = asyncRoute.filter(item => {
      // 返回从用户筛选出来的动态权限名单和总名单进行匹配，在总名单中就存储下来
      return menus.indexOf(item.name) !== -1
    })
    console.log('筛选出来具有访问权限的动态路由', routes)
    // 存储筛选完毕的路由名单在vuex中
    store.commit('setRoutes', routes)
    return routes
  }

}

export default {
  namespaced: true,
  state,
  mutations,
  actions

}
